The present invention relates to a programming system for a robot, or similar automatic apparatus, bearing a tool, the system comprising a control unit, operative to control movements of the robot according to multiple axes, and a portable programming terminal operatively connected to the control unit, where the terminal comprises                selection means, able to be operated manually by an operator to select a desired co-ordinate system among a plurality of co-ordinate systems stored in the control unit;        first motion control means, whose operation depends on a selection made through the selection means, the first motion control means comprising a plurality of motion keys able to be operated manually to provide the control unit with a respective control signal for the robot, said control signal being aimed at making the tool perform a rotation or translation motion about or along an axis corresponding to the motion push-button operated, in the co-ordinate system selected through the selection means,        position teaching means, able to be operated manually to store in the control unit the position reached by a predefined point of the tool as a result of a motion of the robot.        
The activity of programming a robot essentially consists in manually teaching the robot the trajectory which one of its points shall have to repeat automatically in order to execute a certain application.
This point is constituted by the so-called “Tool Centre Point” (TCP), which identifies the position of the active part of the tool mounted on the wrist of the robot, i.e. the part of the tool that performs the operation, and that is defined by an operator in opportune fashion according to the application; in view of this, for instance in the case of an arc welding operation, the TCP is located on the tip of the welding torch at the end of the welding wire; in sealing applications, instead, the TCP is in correspondence with a nozzle for the outflow of the sealant, whilst for applications requiring an electrical spot welding gun the TCP corresponds to one of the two electrodes or to an intermediate point between them.
Most programming time is dedicated to commanding the robot manually, to identify the optimal points of the trajectory the TCP will have to follow, and to store their co-ordinates. For this purpose, a portable programming terminal is provided, known as the “teach pendant”, which is connected to the robot control unit and typically comprises a display and a series of push-buttons used for programming and manually commanding the motion of the robot; the programming terminal is usually connected to the control unit by means of a long wire that allows the operator to move in proximity to the work area of the robot, to be able accurately to verify the points and trajectories of the TCP.
To command the variations to the posture of the robot manually, the operator uses specific push-buttons of the programming terminal, known as “jog” push-buttons or keys, which command the actuation of one or more axes of the robot.
Acting on the jog push-buttons of the portable terminal, the TCP can be actuated in a specific positive or negative direction within a reference system selected by the operator among a plurality of possible reference systems; for instance, typically a reference system of the robot joints, known as “Joints”, is provided, where a vector in such a system represents the angular position of each of the joints; also provided are Cartesian reference systems, such as those usually known as “Base” and “Tool”, the former referred to the base of the robot and the second one to the tool positioned at the end of the robot.
In order to follow the TCP closely and visually checking its positioning, the operator continuously moves around the robot; the operator thereby clearly also moves relative to the origins of the aforesaid reference systems, which complicates, to a certain extent, the programming activity, also in consideration of the fact that the operator, on each occasion, has to select the reference system (s)he desires to use; note working points of the tool of the application to be successively stored, it is occasionally necessary to move multiple axes of the robot.
Use of prior art programming terminals is also generally awkward for the operator, due to the difficulty (s)he has in reaching some push-buttons with his/her fingers, unless (s)he continually changes the postures of his/her hands.
In some cases, use of prior art programming terminals is even tiresome, due to the presence of a safety push-button (known as dead man device), which must be kept pressed while actuating the robot by means of the jog push-buttons.